System and methods for fault detection in kalman filter estimation

ABSTRACT

Systems and methods for detecting faults in estimator data are provided. In one or more examples, measurements from one or more data sources is received. The received data is used to calculate an innovation which in one or more examples can represent the difference between the received data and an expected value of the data. The innovation can then be used to generate a test statistic which is then accumulated at a plurality of monitors, wherein each monitor of the plurality of monitors is configured to accumulate the test statistic over varying periods of time. The accumulated test statistic at each monitor can be compared against a predefined threshold that is set for each individual monitor. If the accumulated test statistic at any particular monitor is found to be above its corresponding predefined threshold, then the system can alert the user that the received data is likely to be faulty.

FIELD OF THE DISCLOSURE

This disclosure relates to systems and methods for implementing a faultdetection scheme for systems employing Kalman filters. These systems andmethods can be used to prevent errant data from being introduced into aKalman filter, thereby improving the Kalman filter's ability to provideaccurate estimates.

BACKGROUND OF THE DISCLOSURE

Kalman filters have long been used to combine data from multiple sensorsto provide an estimate of some attribute based on the data from themultiple sensors. A Kalman filter can ingest data from multiple sensors,wherein each sensor's data contains random noise and other inaccuracies,and produce an estimate of unknown variables that are more accurate thanif a single sensor was used to produce an estimate of the unknownvariable.

The Kalman filter can be used in a wide variety of contexts. One commoncontext is the field of navigation. Multiple sensors can be used toestimate the position of an object over time. For instance, a GlobalPositioning System (GPS) or global navigation satellite system (GNSS)receiver (sensor) can be used in conjunction with an inertialmeasurement unit (IMU) to estimate the position in time of an object.Both a GPS sensor and an IMU sensor have noise and inaccuraciesassociated with their measurements and thus can produce an estimate ofthe position of an object albeit with some inaccuracy. However, a Kalmanfilter can be employed to take the measurement from both the GPS sensorand the IMU sensor, and produce an estimate of the position of anobject, often times with greater accuracy than if the GPS or IMU sensorwere used in isolation.

However, the Kalman filter's ability to produce accurate estimates ofposition is constrained by the accuracy of the sensor data it uses togenerate the estimates. A model of the expected sensor errors isdesigned and implemented as part of the fundamental Kalman filteralgorithm, but if unexpected and therefore unmodeled errors (“faults”)are present in the measurements they can taint the estimate of position,unbeknownst to the navigation equipment. For example, if a GPSsatellite's clock experienced a timing error that was outside thestandard system performance bounds and which was not reflected in thenavigation messages encoded on the GPS signal waveform, the navigationequipment can consequently produce a misleading position/time solution.If a Kalman filter ingests faulty sensor data, then the subsequentestimate of position made by the Kalman filter will likely have an erroroutside the predicted 1-sigma envelope. Faulty data, when ingested by aKalman filter, can taint the filter's state and can induce non-zerobiases on the state estimates. This phenomenon can in turn make the nextfaulty measurement appear more believable and less likely to be detectedas a fault. This feedback effect complicates a purely analytic approachto the analysis of false alarm and missed detection rates.

Making sure that a Kalman filter provides accurate estimates of positioncan mean making sure that the Kalman filter is using genuine dataproduced by sensors associated with an object's position. If “faulty”data can be detected and identified, then the data can be excluded forconsideration by the Kalman filter when estimating the position of anobject.

SUMMARY OF THE DISCLOSURE

Accordingly, systems and methods for fault detection in Kalman filterestimators is provided. In one or more examples, the system and methodscan utilize an innovations-based fault detection approach wherein aplurality of innovations monitors are used simultaneously to determinethe existence of a fault.

In one or more examples, the systems and methods can calculate aninnovation by differencing a current measurement received from a sensorin the system with an expected or predicted value of the measurementproduced by a Kalman filter. The calculated innovation can then be putthrough a series of time-based statistical tests and compared against apre-determined threshold so as to detect a possible faulty measurement.In one or more examples, the determined faulty measurement can berejected by the system and not processed by the Kalman filter, therebypreserving the accuracy of the estimates generated by the Kalmanfilter-based system.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary Kalman filter-based position estimationsystem according to examples of the disclosure.

FIG. 2 illustrates an exemplary Kalman filter based estimation system inwhich faulty GPS data is provided to the Kalman filter according to oneor more examples of the disclosure.

FIG. 3 illustrates an exemplary Kalman filter-based position estimationsystem with a fault detector according to examples of the disclosure.

FIG. 4 illustrates an exemplary innovations monitor bank detectionscheme according to examples of the disclosure.

FIG. 5 illustrates an exemplary process for implementing a faultdetection scheme that utilizes an innovations monitor bank approachaccording to examples of the disclosure.

FIG. 6 illustrates an example of a computing device in accordance withone embodiment.

DETAILED DESCRIPTION

In the following description of the disclosure and embodiments,reference is made to the accompanying drawings in which are shown, byway of illustration, specific embodiments that can be practiced. It isto be understood that other embodiments and examples can be practicedand changes can be made without departing from the scope of thedisclosure.

In addition, it is also to be understood that the singular forms “a,”“an,” and “the” used in the following description are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It is also to be understood that the term “and/or” as usedherein refers to and encompasses any and all possible combinations ofone or more of the associated listed items. It is further to beunderstood that the terms “includes,” “including,” “comprises,” and/or“comprising,” when used herein, specify the presence of stated features,integers, steps, operations, elements, components, and/or units but donot preclude the presence or addition of one or more other features,integers, steps, operations, elements, components, units, and/or groupsthereof.

Some portions of the detailed description that follow are presented interms of algorithms and symbolic representations of operations on databits within a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of steps (instructions)leading to a desired result. The steps are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical, magnetic, or opticalsignals capable of being stored, transferred, combined, compared, andotherwise manipulated. It is convenient at times, principally forreasons of common usage, to refer to these signals as bits, values,elements, symbols, characters, terms, numbers, or the like. Furthermore,it is also convenient at times to refer to certain arrangements of stepsrequiring physical manipulations of physical quantities as modules orcode devices without loss of generality.

However, all of these and similar terms are to be associated with theappropriate physical quantities and are merely convenient labels appliedto these quantities. Unless specifically stated otherwise as apparentfrom the following discussion, it is appreciated that, throughout thedescription, discussions utilizing terms such as “processing,”“computing,” “calculating,” “determining,” “displaying,” or the likerefer to the action and processes of a computer system, or similarelectronic computing device, that manipulates and transforms datarepresented as physical (electronic) quantities within the computersystem memories or registers or other such information storage,transmission, or display devices.

Certain aspects of the present invention include process steps andinstructions described herein in the form of an algorithm. It should benoted that the process steps and instructions of the present inventioncould be embodied in software, firmware, or hardware, and, when embodiedin software, could be downloaded to reside on and be operated fromdifferent platforms used by a variety of operating systems.

The present invention also relates to a device for performing theoperations herein. This device may be specially constructed for therequired purposes, or it may comprise a general-purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program may be stored in a non-transitory,computer-readable storage medium, such as, but not limited to, any typeof disk, including floppy disks, optical disks, CD-ROMs,magnetic-optical disks, read-only memories (ROMs), random accessmemories (RAMs), EPROMs, EEPROMs, magnetic or optical cards,application-specific integrated circuits (ASICs), or any type of mediasuitable for storing electronic instructions and each coupled to acomputer system bus. Furthermore, the computers referred to in thespecification may include a single processor or may be architecturesemploying multiple processor designs for increased computing capability.

The methods, devices, and systems described herein are not inherentlyrelated to any particular computer or other apparatus. Variousgeneral-purpose systems may also be used with programs in accordancewith the teachings herein, or it may prove convenient to construct amore specialized apparatus to perform the required method steps. Therequired structure for a variety of these systems will appear from thedescription below. In addition, the present invention is not describedwith reference to any particular programming language. It will beappreciated that a variety of programming languages may be used toimplement the teachings of the present invention as described herein.

Described herein are systems and methods for implementing a faultdetection scheme to detect faulty sensor data in a Kalman filter-basedestimation system. In one or more examples of the disclosure, thesystems and methods can implement a monitor bank that includes aplurality of cumulative innovations monitors that can be used inconjunction with one another to detect faults in data received fromvarious sensors in the Kalman filter-based system. The disclosure usesthe context of navigation and position estimation to exemplify thedisclosure, but the context should not be seen as limiting, and thesystems and methods described below can be employed in any context inwhich a Kalman filter is used to estimate an unknown variable based on aplurality of sensor data.

Modern civilian and military platforms are increasingly utilizingmultiple sensors for navigation, most often beginning with a globalnavigation satellite system (GNSS) or Global Positioning System (GPS)receiver and combining that receiver with an inertial measurement unit(IMU). A Kalman filter remains the most widely used estimator formulti-sensor fusion, and much effort has been placed in designingoptimal and robust navigation algorithms that can estimate the positionof an object based on the data provided by the GPS and IMU sensor. Thesealgorithms implicitly assume that the GPS sensors and IMU sensorsemployed in the system are behaving according to predefined measurementmodels. While navigation systems that employ both GPS sensors and IMUsensors are discussed in detail below, a person of ordinary skill in theart would appreciate that the systems and methods described below canextend naturally to systems that employ any number of sensors.

FIG. 1 illustrates an exemplary Kalman filter-based position estimationsystem according to examples of the disclosure. The example of FIG. 1illustrates an exemplary system 100 that can include a GPS sensor 102and an IMU sensor 104. GPS sensors, such as those depicted at 102transmit data to a receiver to indicate the position of an object.However, the data received can be corrupted by noise coming in the formof measurement error, channel noise, and other sources of noise known inthe art. Likewise, IMU sensor measurements, such as that depicted at104, can be transmitted to a receiver and be utilized to indicate theposition of an object. However, the data received can be corrupted bynoise coming in the form of measurement error, like that of the GPSsensor.

In one or more examples, both the GPS sensor 102 and the IMU sensor 104can be directly compared with one another to determine the likelyposition of an object. However, direct comparison between a GPS positionestimate and one obtained from an IMU can only be effective for shortduration applications because IMU based positioning estimates degradeover time. In order to effectively leverage multi sensor data collectionto estimate the position of an object, a method can be employed thatestimates the position of an object based on the received data from thesensors, and an understanding of the various noise sources that areassociated with each sensor.

Thus, in one or more examples, a system 100 can include a Kalman filter106 that can leverage both sensors 102 and 104 to determine the positionof an object. A Kalman filter is a method that utilizes linear quadraticestimation to generate estimates of the position of an object based notonly on the currently received measurements, but also the measurementspreviously received. Kalman filter 106 can thus receive measurement datafrom GPS sensor 102 and IMU sensor 104 and generate at its output anestimate of the position of the object that is being tracked.

Systems such as the one depicted in FIG. 1 can be used to estimate theposition of the object more accurately than just using the sensorsthemselves because the Kalman filter can take into account previousmeasurements as well as a priori knowledge of the noise characteristicsof each sensor to generate a more accurate estimate. However, the Kalmanfilter's recursive nature, in that it relies on previously receivedmeasurements, can make it susceptible to producing inaccurate estimates,particularly in the case of a pernicious, slowly-accumulatingmeasurement fault which occurs over some period of time as opposed to anabrupt and large error that is easily detected and discarded.

In one or more examples of the disclosure, a pernicious fault source(PFS) could provide to the Kalman filter faulty GPS data with the goalof inducing the Kalman filter to estimate a false trajectory of theobject. FIG. 2 illustrates an exemplary Kalman filter-based estimationsystem in which faulty GPS data is provided to the Kalman filteraccording to one or more examples of the disclosure. In the system 200of FIG. 2, the GPS sensor 202 and the IMU sensor 204 can provide data toKalman filter 206 as discussed above with respect to FIG. 1 above.However, in the example of FIG. 2, a PFS of bad GPS data (e.g.,malfunctioning satellite, control segment error) 208 can also transmitfaulty GPS data to the Kalman filter 206.

As discussed above, Kalman filters such as Kalman filter 206 can usecurrently received data as well as past data and past estimates togenerate current estimates of the position of the object. Thus, iffaulty measurements are received by the Kalman filter from a PFS 208,then not only will the current estimate generated by the Kalman filterbe inaccurate, but future estimates can also be inaccurate due to theKalman filter's use of prior estimates to generate current estimates.

One strategy that can be employed to ensure that faulty data does notcause the Kalman filter to generate current and future inaccurateestimates is to try and prevent the faulty data from entering into theKalman filter's estimation algorithm. In order to prevent the faultydata from entering the Kalman filter, it thus can become prudent to havea method to identify data as faulty, and then reject that data frombeing used by the Kalman filter to generate position estimates. In otherwords, imparting the system with a method for detecting faults with thedata being received before the data is provided to a Kalman filter cansubstantially improve the performance of the Kalman filter inenvironments in which there are attempts to provide the Kalman filterwith faulty data.

FIG. 3 illustrates an exemplary Kalman filter-based position estimationsystem with a fault detector according to examples of the disclosure. Inthe example of FIG. 3, system 300 can include similar components to theexample of FIG. 2. For instance, system 300 can include a GPS sensor302, IMU sensor 304, Kalman filter 306, and a PFS 308 transmitting afaulty GPS signal, that operate in substantially the same manner astheir counterparts 202, 204, 206, and 208 respectively from FIG. 2.Thus, a description of the operation of elements 302, 304, 306, and 308can be referenced above with respect to their counterparts from theexample of FIG. 2.

In addition to the above described components, the system 300 can alsoinclude a fault detector 310. Fault detector 310 can be used to identify“faulty” data and can also be used to reject that faulty data so that itis not sent to the Kalman filter where it could be used to determine anestimate of the position of an object being tracked. As shown in FIG. 3,the fault detector 310 can be communicatively coupled to Kalman filter306 so that, and as described in detail below, Kalman filter 306 canprovide information to the fault detector 310 that the fault detectorcan use to help it detect the presence of faulty data such as that beingsent from the PFS 308. While in the example of FIG. 3, fault detector310 is illustrated as being a separate component from Kalman filter 306,in one or more examples, fault detector 310 can be integrated intoKalman filter 306.

As described above, a Kalman filter like the one depicted at 306, cangenerate at its output an estimate of the position of an object based onthe data received from a GPS sensor. Additionally, and as is known inthe art, a Kalman filter can also generate predictions of themeasurements it takes in at its input. Thus, in the example of FIG. 3,when the Kalman filter 306 generates an estimate of the position of theobject, it can also generate estimates of the measured GPS sensor value.The estimates of the measured GPS sensor value can serve as predictionsof the actual values received from GPS sensor 302.

In one or more examples, and as known in the art, the predictedmeasurement value can be generated based on the previous state estimate(aka the a priori state estimate) (i.e., what the Kalman filterpreviously estimated the position of the object to be) as well as apreviously stored dynamic model of the motion of the object that can bepre-configured in the Kalman filter by a user. This dynamic model ofmotion might be based on physics equations or, in the case of IMUintegration, the IMU measurements in conjunction with navigationequations to drive the state propagation. Thus, in one or more examples,and using the previously configured dynamic model of motion, the Kalmanfilter can estimate what each measurement should be at a given moment intime. For instance, if 10 seconds has passed since the Kalman filter 306generated the last state estimate, then using the IMU measurements, theprior state estimate, and the amount of time that has elapsed, theKalman filter can generate estimates of what the data from the GPSsensor 302 should currently read.

In addition to being preconfigured with a dynamic model of the motion ofan object as described above, Kalman filter 306 can also bepreconfigured with the noise profiles of each of the sensors it takesreadings from. The noise profiles can be configured in the Kalman filter306 as a time-varying covariance matrix which, as will be described infurther detail below, can be used by the fault detector 310 to aid inthe detection of faults.

In one or more examples, the Kalman filter 306 can transmit back to thefault detector 310 the previous state estimate, predictions of themeasurements that are received by the Kalman filter and any given momentin time, as well as noise information for each sensor in the form of acovariance matrix. The fault detector 310 can use these values from theKalman filter to detect faults, as will be described in further detailbelow.

One known method to detect faults is to simply compare the receivedmeasurements with the estimates of those measurements generated by theKalman filter 306, and as described above. One method of comparison isto take the difference between the actual measurements and the estimatesof those measurements generated by the Kalman filter 306. The result ofthe differencing of the measurements with the estimates of themeasurements can be referred to as an “innovation.” As described infurther detail below, an innovation can be used in fault detection todetect faults with the data that has been received.

In one or more examples, an innovation can be used to generate a“snapshot innovations monitor” that can monitor received data to detectthe presence of faults. To mathematically illustrate how an innovationsmonitor can be used to detect a fault, we label an innovation as y_(k).Using the innovation y_(k), which because there are multiple measurementcan be represent as a vector, a test statistic can be generated that canultimately be compared against a predetermined threshold to detect thepresence of a fault. In one or more examples the test statistic can berepresented by equation 1 below.

s _(k) =y _(k) ^(T) S _(k) ⁻¹ y _(k)   Equation 1

In equation 1 above, s_(k) can represent the calculated test statistic,y_(k) can represent the calculated innovation, and S_(k) can representthe innovation covariance matrix. The innovation covariance matrix, inone or more examples, can be generated by the Kalman filter itself. Asdescribed above, each measurement source can have a noise profile (i.e.,a variance) associated with it. Thus, the innovation covariance matrixwill also have a noise profile associated with it that is based on thenoise profiles of the sensors being utilized by the Kalman filter. Inone or more examples, each sensor measurement can have a noise profilethat can be represented with a Gaussian random variable that is zeromean and has a particular variance. Since the Kalman filter is nativelylinear or can be linearized, as in the case of an extended Kalmanfilter, the innovation vector can also be modeled as a Gaussian randomvector that can be described by a covariance matrix.

Thus, equation 1 above, essentially takes the current innovation andforms a weighted normalization such that the innovation vector isconverted into a scalar test statistic. Because the innovation isnormalized by the inverse of the covariance matrix of the innovation,the test statistic can thus be modeled as a chi-squared random variable.Referring back to equation 1 above, s_(k) (i.e., the test statistic) canbe modeled as a chi-squared random variable. In one or more examples, ina snapshot innovations monitor, the generated test statistic can becompared against a predetermined threshold to determine if there is apotential fault with the data that has been received from the sensors,such as GPS sensor 302 and IMU sensor 304.

In one or more examples, the threshold can be based on a predeterminedacceptable false alarm probability and the number of degrees of freedomm which is proportional to the number of accumulations and measurements(i.e., how many innovations have been accumulated and the number ofmeasurements that comprise those innovations). Thus, for example, givena required minimum false alarm probability P_(fa), a threshold T can bedetermined from equation 2 below.

$\begin{matrix}{T_{k} = {F_{\chi_{m}^{2}}^{- 1}\left( {1 - P_{fa}} \right)}} & {{Equation}\mspace{14mu} 2}\end{matrix}$

In equation 2 above, T_(k) can represent the threshold value, F_(x2m) ⁻¹can represent the central chi-square inverse cumulative distributionfunction, and P_(fa) can represent the predetermined acceptableprobability of false alarm. In the example of the snapshot monitor, thecalculated s_(k) (i.e., the test statistic) can be compared with T_(k)to determine whether a potential fault exists in the received data.

While the process described above with respect to equations 1 and 2 canbe used to detect faults in data, the snapshot innovations monitor canhave its limitations. A snapshot innovations monitor may be well-suitedto detecting sudden and large faults, but it may not be able to pick upsubtly growing faults (e.g., a sensor failure which occurs over a longertime scale). If these subtle faults are not detected, the bias theyinduce in the Kalman filter estimate can accumulate and may cause theKalman filter to produce unacceptably inaccurate estimates of theposition of an object.

One way to counteract the above phenomenon is to accumulate thenormalized innovations over time and compare the accumulated innovationsto an accumulated threshold to determine the presence of faulty data.Such a system can be referred to as an infinite horizon innovationsmonitor. The infinite horizon innovations monitor can generate acumulative test statistic that can be compared against a cumulativethreshold to detect the presence of one or more faults. Equation 3 belowcan mathematically represent the infinite horizon innovations monitor.

$\begin{matrix}{s_{k} = {\sum\limits_{i = 1}^{k}{y_{i}^{T}S_{i}^{- 1}y_{i}}}} & {{Equation}\mspace{14mu} 3}\end{matrix}$

The innovations vector y is uncorrelated through time, meaning thats_(k) (which now represents the cumulative test statistic) is chi-squaredistributed. Therefore, the design and analysis of the infinite horizonmonitor (i.e., setting thresholds) is identical to the snapshot monitor.While the infinite horizon innovations monitor can be effective atdetecting subtle faults over time, given that the degrees of freedomincreases ad infinitum, the monitor can become increasingly sensitive tomodel uncertainty with time. Thus, in a context in which an object maybe traveling for a long duration of time, the infinite horizon monitormay not be well suited to detect faults or may be too error prone for alonger duration mission.

The snapshot innovations monitor may be well-suited to detect suddenfaults, and the infinite horizon monitor's usefulness may be hampered byits performance over time due to model uncertainty sensitivity. Thus, inone or more examples, rather than allowing the innovations to accumulateover infinity, in one or more examples, the innovations can beaccumulated over a pre-determined period of time (i.e., a slidingwindow) to detect faults. This finite duration innovations monitor caneschew the limitations of both the snapshot monitor and the infinitehorizon monitor. However, picking a duration that can accurately detectsubtle faults over time, without degrading over time like the infinitehorizon monitor can present a challenge. A single duration monitor maybe well-suited to pick up subtle faults but may not be well suited todetect sudden faults if the duration is high. If the duration is pickedto be too low, the monitor may be well suited to detecting sudden faultsbut may miss more subtle faults.

Thus, in one or more examples, rather than picking a single accumulationduration, the examples of the present disclosure can utilize a pluralityof monitors (i.e., a monitor bank) that accumulate over different timedurations to detect the presence of a fault. FIG. 4 illustrates anexemplary innovations monitor bank detection scheme according toexamples of the disclosure. In the example of FIG. 4, element 400 canrepresent a time-series of measurement updates, with each box of element400 representing a collection of received measurements at a specifictime. FIG. 4 illustrates four separate monitor bank schemes 402, 404,406, and 408. Turning to the example of monitor bank scheme 402, thevalue N can represent the number of monitors in the scheme. Thus, in theexample of monitor bank scheme 402, the value N can be set to 4. N canbe predefined by a user of the system. The user can also define thevalue B which can represent the number of measurement updates that areused to generate a test statistic. Thus, in the example of monitor bankscheme 402, B can be equal to 2.

In the example of monitor bank scheme 402, when a measurement update(labeled as m₀) is received it can be added to each monitor (i.e., thefour monitors determined by N). The first monitor can generate a teststatistic based on the accumulation of the innovations associated withm₀ and m⁻¹ (i.e., the previously received measurement) since B=2. Thesecond monitor of monitor bank scheme 402 can accumulate the teststatistics associated with the current measurement m₀ and m⁻¹ and thetest statistics of measurements m⁻² and m⁻³ (i.e., the two windows).This pattern can continue for all 4 monitors in the monitor scheme 402(i.e., the third monitor can contain 3 windows, and the fourth monitorcan include 4 windows). Monitor bank schemes 404, 406, and 408 canillustrate different configurations of the monitor bank when N and B arevaried by the user.

When a new measurement is received, a new test statistic can begenerated that utilizes the new measurement for each monitor in thebank. The newly generated test statistic can be compared against athreshold similar to what is discussed above for the infinite horizonmonitor and is based on the number of measurements included in the teststatistic (i.e., the chi-squared threshold can have the appropriatedegrees of freedom associated with the number of normalized innovationsthat are accumulated). In one or more examples, the P_(fa) used tocompute each monitor's threshold can be determined by dividing theoverall monitor bank's P_(fa) by the number of monitors in the bank.Alternatively, the P_(fa) can be allocated in any manner so long as thedistribution of P_(fa) allows for the P_(fa) of the entire bank to bewithin the overall limit. If any of the generated test statistics areabove their associated thresholds, then the fault detector 310 of FIG. 3can indicate a fault.

FIG. 5 illustrates an exemplary process for implementing a faultdetection scheme that utilizes an innovations monitor bank approachaccording to examples of the disclosure. In the example of FIG. 5, theprocess 500 can begin at step 502 wherein the measurements from thevarious sensors in the Kalman filter-based estimation scheme arereceived. Using the example of FIG. 3, step 502 can correspond to theinstance when the fault detector 310 receives the measurements from GPSsensor 302.

Once the measurements are received at step 502, the process can thenmove to step 504 wherein an innovation is calculated for the receivedmeasurement as described above. Once the innovation is calculated atstep 504, the process can then move on to step 506 wherein a teststatistic is calculated using the newly generated innovation calculatedat step 504. As described above with respect to FIG. 4, the teststatistic can utilize multiple innovations depending on the value of B.

In one or more examples, once the test statistic is calculated at step506, the process can move to step 508 wherein the newly generated teststatistic is accumulated at each individual monitor in the bank. Usingthe example of FIG. 4, the newly generated test statistic can beaccumulated in each of the four monitors in the monitor bank scheme 402,since N is set to four.

Once the test statistic has been accumulated to each monitor in themonitor bank at step 508, the process 500 can move on to step 510wherein each accumulated test statistic is compared to its correspondingthreshold, as described above with respect to FIG. 4. The process 500can then move on to step 512 wherein a determination is made as towhether any threshold of any of the monitors in the monitor bank schemehas been surpassed. If none of the thresholds have been surpassed, thenno fault will be indicated, and the process 500 can revert back to step502 to receive new measurements. However, if at step 512 it isdetermined that one or more of the thresholds have been surpassed, thenthe process can move to step 514 wherein a fault is indicated. In one ormore examples, at step 514, indication of a fault can come in the formof a notification to the user that there was a fault, or a notificationto the Kalman filter system that a fault has occurred.

In the event that a fault has been detected at step 514, the system cantake various actions to mitigate the fault. For instance, if thethreshold of a particular monitor is surpassed, then that can indicatethat fault has occurred within the past time duration of that particularmonitor. Thus, if a particular monitor for example is accumulating teststatistics over a ten minute period, then if the threshold is surpassedat that monitor, it can indicate that faulty data has been acquired atsome or multiple points within that ten minute window. Thus, in order tomitigate the fault, the system can “rewind” the filter state back tenminutes and redo the state propagation but without the faultymeasurements, thus rejecting the previous measurements collected overthe ten minute window.

The system and methods described above can allow for a Kalmanfilter-based system to detect faults over varying time windows thusproviding a robust process for detecting faults that can simultaneouslydetect sudden large faults, as well as subtle faults occurring over aperiod of time.

FIG. 6 illustrates an example of a computing device in accordance withone embodiment. Device 600 can be a host computer connected to anetwork. Device 600 can be a client computer or a server. As shown inFIG. 6, device 600 can be any suitable type of microprocessor-baseddevice, such as a personal computer, workstation, server, or handheldcomputing device (portable electronic device), such as a phone ortablet. The device can include, for example, one or more of processors602, input device 606, output device 608, storage 610, and communicationdevice 604. Input device 606 and output device 608 can generallycorrespond to those described above and can either be connectable orintegrated with the computer.

Input device 606 can be any suitable device that provides input, such asa touch screen, keyboard or keypad, mouse, or voice-recognition device.Output device 608 can be any suitable device that provides output, suchas a touch screen, haptics device, or speaker.

Storage 610 can be any suitable device that provides storage, such as anelectrical, magnetic, or optical memory, including a RAM, cache, harddrive, or removable storage disk. Communication device 604 can includeany suitable device capable of transmitting and receiving signals over anetwork, such as a network interface chip or device. The components ofthe computer can be connected in any suitable manner, such as via aphysical bus or wirelessly.

Software 612, which can be stored in storage 610 and executed byprocessor 602, can include, for example, the programming that embodiesthe functionality of the present disclosure (e.g., as embodied in thedevices as described above).

Software 612 can also be stored and/or transported within anynon-transitory computer-readable storage medium for use by or inconnection with an instruction execution system, apparatus, or device,such as those described above, that can fetch instructions associatedwith the software from the instruction execution system, apparatus, ordevice and execute the instructions. In the context of this disclosure,a computer-readable storage medium can be any medium, such as storage610, that can contain or store programming for use by or in connectionwith an instruction execution system, apparatus, or device.

Software 612 can also be propagated within any transport medium for useby or in connection with an instruction execution system, apparatus, ordevice, such as those described above, that can fetch instructionsassociated with the software from the instruction execution system,apparatus, or device and execute the instructions. In the context ofthis disclosure, a transport medium can be any medium that cancommunicate, propagate, or transport programming for use by or inconnection with an instruction execution system, apparatus, or device.The transport readable medium can include, but is not limited to, anelectronic, magnetic, optical, electromagnetic, or infrared wired orwireless propagation medium.

Device 600 may be connected to a network, which can be any suitable typeof interconnected communication system. The network can implement anysuitable communications protocol and can be secured by any suitablesecurity protocol. The network can comprise network links of anysuitable arrangement that can implement the transmission and receptionof network signals, such as wireless network connections, T1 or T3lines, cable networks, DSL, or telephone lines.

Device 600 can implement any operating system suitable for operating onthe network. Software 612 can be written in any suitable programminglanguage, such as C, C++, Java, or Python. In various embodiments,application software embodying the functionality of the presentdisclosure can be deployed in different configurations, such as in aclient/server arrangement or through a Web browser as a Web-basedapplication or Web service, for example.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the disclosure to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples of the techniques and their practical applications. Othersskilled in the art are thereby enabled to best utilize the techniquesand various embodiments with various modifications as are suited to theparticular use contemplated.

According to some examples of the disclosure, the systems and methodscan include a device for detecting and rejecting faulty data in anestimation scheme, the device comprising: an input configured to receivedata, a memory, one or more processors, wherein the one or moreprocessors are configured to execute instructions stored on the memorythat when executed by the processor, cause the device to: receive one ormore measurements from one or more sensors at the input, calculate aninnovation based on the one or more received measurements, wherein aninnovation is based on the received one or more measurements and anexpected value of the one or more received measurements, calculate atest statistic based on the calculated innovation, wherein thecalculated test statistic is based on the calculated innovation andnoise information about the calculated innovation, accumulate thecalculated test statistic at one or more monitors, wherein each of theone or more monitors is configured to accumulate the calculated teststatistic over one or more predefined time periods, compare each of theaccumulated one or more test statistics of a monitor of the one or moremonitors with one or more pre-defined thresholds, wherein each of theone or more pre-defined thresholds corresponds to a monitor of the oneor more monitors, and if the one or more of the accumulated teststatistics of a monitor is greater than its corresponding pre-definedthreshold of the one or more pre-defined thresholds: alert a user of thedevice to the presence of a fault with the received one or moremeasurements. In one or more examples, the one or more processors arefurther configured to: if none of the one or more of the accumulatedtest statistics of a monitor is greater than its correspondingpre-defined threshold of the one or more pre-defined thresholds:transmit the received one or more estimates to an estimator, wherein theestimator produces an estimate of a value based on previous estimates ofthe value and one or more measurements received by one or more sensors.In one or more examples, the estimator is a Kalman filter. In one ormore examples, the calculated innovation is based on a differencebetween the one or more received measurements and the expected value ofthe one or more received measurements. In one or more examples, thenoise information about the calculated innovation includes a covariancematrix of the innovation. In one or more examples, the noise informationincludes a covariance matrix of the innovation, and wherein the teststatistic is calculated by multiplying the calculated innovation withthe covariance matrix of the innovation. In one or more examples, eachmonitor of the one or more monitors accumulates the test statistic overa predefined period of time set by a user of the device. In one or moreexamples, each monitor can update the test statistic based on apredefined number of received measurements, and wherein the predefinednumber of received measurements is set by the user of the device. In oneor more examples, the predefined threshold is based on a probability offalse alarm, wherein the probability of false alarm represents theprobability that the one or more of the accumulated test statistics of amonitor is greater than its corresponding pre-defined threshold of theone or more pre-defined thresholds and the one or more measurements donot contain faults. In one or more examples, the one or more receivedmeasurements are received from a GPS transmitter.

According to some examples of the disclosure, the systems and methodscan include a method for detecting and rejecting faulty data in anestimation scheme, the method comprising: receiving one or moremeasurements from one or more sensors at an input, calculating aninnovation based on the one or more received measurements, wherein aninnovation is based on the received one or more measurements and anexpected value of the one or more received measurements, calculating atest statistic based on the calculated innovation, wherein thecalculated test statistic is based on the calculated innovation andnoise information about the calculated innovation, accumulating thecalculated test statistic at one or more monitors, wherein each of theone or more monitors is configured to accumulate the calculated teststatistic over one or more predefined time periods, comparing each ofthe accumulated one or more test statistics of a monitor of the one ormore monitors with one or more pre-defined thresholds, wherein each ofthe one or more pre-defined thresholds corresponds to a monitor of theone or more monitors, and if the one or more of the accumulated teststatistics of a monitor is greater than its corresponding pre-definedthreshold of the one or more pre-defined thresholds: alerting a user ofthe device to the presence of a fault with the received one or moremeasurements. In one or more examples the method further comprises: ifnone of the one or more of the accumulated test statistics of a monitoris greater than its corresponding pre-defined threshold of the one ormore pre-defined thresholds: transmitting the received one or moreestimates to an estimator, wherein the estimator produces an estimate ofa value based on previous estimates of the value and one or moremeasurements received by one or more sensors. In one or more examples,the estimator is a Kalman filter. In one or more examples, thecalculated innovation is based on a difference between the one or morereceived measurements and the expected value of the one or more receivedmeasurements. In one or more examples, the noise information about thecalculated innovation includes a covariance matrix of the innovation. Inone or more examples, the noise information includes a covariance matrixof the innovation, and wherein the test statistic is calculated bymultiplying the calculated innovation with the covariance matrix of theinnovation. In one or more examples, each monitor of the one or moremonitors accumulates the test statistic over a predefined period of timeset by a user of the device. In one or more examples, each monitor canupdate the test statistic based on a predefined number of receivedmeasurements, and wherein the predefined number of received measurementsis set by the user of the device. In one or more examples, thepredefined threshold is based on a probability of false alarm, whereinthe probability of false alarm represents the probability that the oneor more of the accumulated test statistics of a monitor is greater thanits corresponding pre-defined threshold of the one or more pre-definedthresholds and the one or more measurements do not contain faults. Inone or more examples, the one or more received measurements are receivedfrom a GPS transmitter.

According to some examples of the disclosure, the systems and methodsinclude a non-transitory computer readable storage medium storing one ormore programs, the one or more programs comprising instructions fordetecting and rejecting faulty data in an estimation scheme, whenexecuted by the portable electronic device causes the portableelectronic device to: receive one or more measurements from one or moresensors at an input, calculate an innovation based on the one or morereceived measurements, wherein an innovation is based on the receivedone or more measurements and an expected value of the one or morereceived measurements, calculate a test statistic based on thecalculated innovation, wherein the calculated test statistic is based onthe calculated innovation and noise information about the calculatedinnovation, accumulate the calculated test statistic at one or moremonitors, wherein each of the one or more monitors is configured toaccumulate the calculated test statistic over one or more predefinedtime periods, compare each of the accumulated one or more teststatistics of a monitor of the one or more monitors with one or morepre-defined thresholds, wherein each of the one or more pre-definedthresholds corresponds to a monitor of the one or more monitors, if theone or more of the accumulated test statistics of a monitor is greaterthan its corresponding pre-defined threshold of the one or morepre-defined thresholds: alert a user of the device to the presence of afault with the received one or more measurements. In one or moreexamples, the device is further caused to: if none of the one or more ofthe accumulated test statistics of a monitor is greater than itscorresponding pre-defined threshold of the one or more pre-definedthresholds: transmit the received one or more estimates to an estimator,wherein the estimator produces an estimate of a value based on previousestimates of the value and one or more measurements received by one ormore sensors. In one or more examples, the estimator is a Kalman filter.In one or more examples, the calculated innovation is based on adifference between the one or more received measurements and theexpected value of the one or more received measurements. In one or moreexamples, the noise information about the calculated innovation includesa covariance matrix of the innovation. In one or more examples, thenoise information includes a covariance matrix of the innovation, andwherein the test statistic is calculated by multiplying the calculatedinnovation with the covariance matrix of the innovation. In one or moreexamples, wherein each monitor of the one or more monitors accumulatesthe test statistic over a predefined period of time set by a user of thedevice. In one or more examples, each monitor can update the teststatistic based on a predefined number of received measurements, andwherein the predefined number of received measurements is set by theuser of the device. In one or more examples, the predefined threshold isbased on a probability of false alarm, wherein the probability of falsealarm represents the probability that the one or more of the accumulatedtest statistics of a monitor is greater than its correspondingpre-defined threshold of the one or more pre-defined thresholds and theone or more measurements do not contain faults. In one or more examples,wherein the one or more received measurements are received from a GPStransmitter.

Although the disclosure and examples have been fully described withreference to the accompanying figures, it is to be noted that variouschanges and modifications will become apparent to those skilled in theart. Such changes and modifications are to be understood as beingincluded within the scope of the disclosure and examples as defined bythe claims.

This application discloses several numerical ranges in the text andfigures. The numerical ranges disclosed inherently support any range orvalue within the disclosed numerical ranges, including the endpoints,even though a precise range limitation is not stated verbatim in thespecification because this disclosure can be practiced throughout thedisclosed numerical ranges.

The above description is presented to enable a person skilled in the artto make and use the disclosure and is provided in the context of aparticular application and its requirements. Various modifications tothe preferred embodiments will be readily apparent to those skilled inthe art, and the generic principles defined herein may be applied toother embodiments and applications without departing from the spirit andscope of the disclosure. Thus, this disclosure is not intended to belimited to the embodiments shown but is to be accorded the widest scopeconsistent with the principles and features disclosed herein. Finally,the entire disclosure of the patents and publications referred in thisapplication are hereby incorporated herein by reference.

What is claimed is:
 1. A device for detecting and rejecting faulty datain an estimation scheme, the device comprising: an input configured toreceive data; a memory; one or more processors, wherein the one or moreprocessors are configured to execute instructions stored on the memorythat when executed by the processor, cause the device to: receive one ormore measurements from one or more sensors at the input; calculate aninnovation based on the one or more received measurements, wherein aninnovation is based on the received one or more measurements and anexpected value of the one or more received measurements; calculate atest statistic based on the calculated innovation, wherein thecalculated test statistic is based on the calculated innovation andnoise information about the calculated innovation; accumulate thecalculated test statistic at one or more monitors, wherein each of theone or more monitors is configured to accumulate the calculated teststatistic over one or more predefined time periods; compare each of theaccumulated one or more test statistics of a monitor of the one or moremonitors with one or more pre-defined thresholds, wherein each of theone or more pre-defined thresholds corresponds to a monitor of the oneor more monitors; and if the one or more of the accumulated teststatistics of a monitor is greater than its corresponding pre-definedthreshold of the one or more pre-defined thresholds: alert a user of thedevice to the presence of a fault with the received one or moremeasurements.
 2. The device of claim 1, wherein the one or moreprocessors are further configured to: if none of the one or more of theaccumulated test statistics of a monitor is greater than itscorresponding pre-defined threshold of the one or more pre-definedthresholds: transmit the received one or more estimates to an estimator,wherein the estimator produces an estimate of a value based on previousestimates of the value and one or more measurements received by one ormore sensors.
 3. The device of claim 2, wherein the estimator is aKalman filter.
 4. The device of claim 1, wherein the calculatedinnovation is based on a difference between the one or more receivedmeasurements and the expected value of the one or more receivedmeasurements.
 5. The device of claim 1, wherein the noise informationabout the calculated innovation includes a covariance matrix of theinnovation.
 6. The device of claim 5, wherein the noise informationincludes a covariance matrix of the innovation, and wherein the teststatistic is calculated by multiplying the calculated innovation withthe covariance matrix of the innovation.
 7. The device of claim 1,wherein each monitor of the one or more monitors accumulates the teststatistic over a predefined period of time set by a user of the device.8. The device of claim 7, wherein each monitor can update the teststatistic based on a predefined number of received measurements, andwherein the predefined number of received measurements is set by theuser of the device.
 9. The device of claim 1, wherein the predefinedthreshold is based on a probability of false alarm, wherein theprobability of false alarm represents the probability that the one ormore of the accumulated test statistics of a monitor is greater than itscorresponding pre-defined threshold of the one or more pre-definedthresholds and the one or more measurements do not contain faults. 10.The device of claim 1, wherein the one or more received measurements arereceived from a GPS transmitter.
 11. A method for detecting andrejecting faulty data in an estimation scheme, the method comprising:receiving one or more measurements from one or more sensors at an input;calculating an innovation based on the one or more receivedmeasurements, wherein an innovation is based on the received one or moremeasurements and an expected value of the one or more receivedmeasurements; calculating a test statistic based on the calculatedinnovation, wherein the calculated test statistic is based on thecalculated innovation and noise information about the calculatedinnovation; accumulating the calculated test statistic at one or moremonitors, wherein each of the one or more monitors is configured toaccumulate the calculated test statistic over one or more predefinedtime periods; comparing each of the accumulated one or more teststatistics of a monitor of the one or more monitors with one or morepre-defined thresholds, wherein each of the one or more pre-definedthresholds corresponds to a monitor of the one or more monitors; and ifthe one or more of the accumulated test statistics of a monitor isgreater than its corresponding pre-defined threshold of the one or morepre-defined thresholds: alerting a user of the device to the presence ofa fault with the received one or more measurements.
 12. The method ofclaim 11, wherein the method further comprises: if none of the one ormore of the accumulated test statistics of a monitor is greater than itscorresponding pre-defined threshold of the one or more pre-definedthresholds: transmitting the received one or more estimates to anestimator, wherein the estimator produces an estimate of a value basedon previous estimates of the value and one or more measurements receivedby one or more sensors.
 13. The method of claim 12, wherein theestimator is a Kalman filter.
 14. The method of claim 11, wherein thecalculated innovation is based on a difference between the one or morereceived measurements and the expected value of the one or more receivedmeasurements.
 15. The method of claim 11, wherein the noise informationabout the calculated innovation includes a covariance matrix of theinnovation.
 16. The method of claim 15, wherein the noise informationincludes a covariance matrix of the innovation, and wherein the teststatistic is calculated by multiplying the calculated innovation withthe covariance matrix of the innovation.
 17. The method of claim 11,wherein each monitor of the one or more monitors accumulates the teststatistic over a predefined period of time set by a user of the device.18. The method of claim 17, wherein each monitor can update the teststatistic based on a predefined number of received measurements, andwherein the predefined number of received measurements is set by theuser of the device.
 19. The method of claim 11, wherein the predefinedthreshold is based on a probability of false alarm, wherein theprobability of false alarm represents the probability that the one ormore of the accumulated test statistics of a monitor is greater than itscorresponding pre-defined threshold of the one or more pre-definedthresholds and the one or more measurements do not contain faults. 20.The method of claim 11, wherein the one or more received measurementsare received from a GPS transmitter.
 21. A non-transitory computerreadable storage medium storing one or more programs, the one or moreprograms comprising instructions for detecting and rejecting faulty datain an estimation scheme, when executed by the portable electronic devicecauses the portable electronic device to: receive one or moremeasurements from one or more sensors at an input; calculate aninnovation based on the one or more received measurements, wherein aninnovation is based on the received one or more measurements and anexpected value of the one or more received measurements; calculate atest statistic based on the calculated innovation, wherein thecalculated test statistic is based on the calculated innovation andnoise information about the calculated innovation; accumulate thecalculated test statistic at one or more monitors, wherein each of theone or more monitors is configured to accumulate the calculated teststatistic over one or more predefined time periods; compare each of theaccumulated one or more test statistics of a monitor of the one or moremonitors with one or more pre-defined thresholds, wherein each of theone or more pre-defined thresholds corresponds to a monitor of the oneor more monitors; and if the one or more of the accumulated teststatistics of a monitor is greater than its corresponding pre-definedthreshold of the one or more pre-defined thresholds: alert a user of thedevice to the presence of a fault with the received one or moremeasurements.
 22. The non-transitory computer readable storage medium ofclaim 21, wherein the device is further caused to: if none of the one ormore of the accumulated test statistics of a monitor is greater than itscorresponding pre-defined threshold of the one or more pre-definedthresholds: transmit the received one or more estimates to an estimator,wherein the estimator produces an estimate of a value based on previousestimates of the value and one or more measurements received by one ormore sensors.
 23. The non-transitory computer readable storage medium ofclaim 22, wherein the estimator is a Kalman filter.
 24. Thenon-transitory computer readable storage medium of claim 21, wherein thecalculated innovation is based on a difference between the one or morereceived measurements and the expected value of the one or more receivedmeasurements.
 25. The non-transitory computer readable storage medium ofclaim 21, wherein the noise information about the calculated innovationincludes a covariance matrix of the innovation.
 26. The non-transitorycomputer readable storage medium of claim 25, wherein the noiseinformation includes a covariance matrix of the innovation, and whereinthe test statistic is calculated by multiplying the calculatedinnovation with the covariance matrix of the innovation.
 27. Thenon-transitory computer readable storage medium of claim 21, whereineach monitor of the one or more monitors accumulates the test statisticover a predefined period of time set by a user of the device.
 28. Thenon-transitory computer readable storage medium of claim 27, whereineach monitor can update the test statistic based on a predefined numberof received measurements, and wherein the predefined number of receivedmeasurements is set by the user of the device.
 29. The non-transitorycomputer readable storage medium of claim 21, wherein the predefinedthreshold is based on a probability of false alarm, wherein theprobability of false alarm represents the probability that the one ormore of the accumulated test statistics of a monitor is greater than itscorresponding pre-defined threshold of the one or more pre-definedthresholds and the one or more measurements do not contain faults. 30.The non-transitory computer readable storage medium of claim 21, whereinthe one or more received measurements are received from a GPStransmitter.